package com.itheima.config;

import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

public class ThreadPoolConfig {

    public static ThreadPoolExecutor getThreadPool(){
        ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
                Runtime.getRuntime().availableProcessors()+1, // 核心线程数 相当于 核心员工
                Runtime.getRuntime().availableProcessors()*2, // 最大线程数 相当于 最大员工数
                60L, // 非核心线程空闲存活时间 相当于 员工空闲存活时间
                TimeUnit.SECONDS,
                new LinkedBlockingQueue<Runnable>(1024), // 任务队列容量 相当于 员工休息室的大小
                new ThreadPoolExecutor.CallerRunsPolicy() // 拒绝策略
        );
        return threadPoolExecutor;
    }
}
